package types

type AuthGetUserOrganListResp struct {
	Resp
	Data AuthGetUserOrganListItem `json:"data"`
}
type AuthGetUserOrganListItem struct {
	List []AuthGetUserOrganElement `json:"list"`
}
type AuthGetUserOrganElement struct {
	OrganClassificationId int32  `json:"organClassificationId"`
	OrganId               int64  `json:"organId"`
	OrganName             string `json:"organName"`
}

type CustomerListReq struct {
	Page          int64    `json:"page" validate:"omitempty,gte=1"`     // 页码: 必须大于或等于 1
	PageSize      int64    `json:"pageSize" validate:"omitempty,gte=1"` // 每页数量: 必须大于或等于 1
	CustomerName  string   `json:"customerName" `                       // 客户名称: 可选
	CustomerTel   string   `json:"customerTel" `                        // 客户手机号: 可选
	Sex           int32    `json:"sex" validate:"omitempty,oneof=1 2"`  // 性别: 可选，值只能是 1 或 2
	AgeStart      int32    `json:"ageStart" validate:"omitempty,gte=0"` // 年龄开始: 可选，必须大于或等于 0
	AgeEnd        int32    `json:"ageEnd" validate:"omitempty,gte=0"`   // 年龄结束: 可选，必须大于或等于 0
	CreateAtStart int64    `json:"createAtStart" `                      // 创建时间开始时间戳: 可选，必须是数字（时间戳）
	CreateAtEnd   int64    `json:"createAtEnd" `                        // 创建时间结束时间戳: 可选，必须是数字（时间戳）
	VipIds        []uint64 `json:"vipIds" `                             // 会员ID列表: 可选
	CustomerCode  string   `json:"customerCode" msg:"客户编码"`
	OrganId       uint64   `json:"organId" form:"organId" validate:"omitempty,gt=0"` //组织机构ID
}
type CustomerListResp struct {
	Resp
	Data GetTreeCustomerListResp `json:"data"`
}
type GetTreeCustomerListResp struct {
	Total     int                `json:"total"`
	Customers []TreeCustomerInfo `json:"customers"`
}
type TreeCustomerInfo struct {
	Id                   uint64          `json:"id"`           // 主键ID
	CreatedTime          int64           `json:"createdTime"`  // 创建时间，这是给前端看的，所以应该由时间戳转成对应的日期字符串
	UpdatedTime          int64           `json:"updatedTime"`  // 创建时间，这是给前端看的，所以应该由时间戳转成对应的日期字符串
	CustomerName         string          `json:"customerName"` // 客户名称
	CustomerTel          string          `json:"customerTel"`  // 客户手机号
	Sex                  int32           `json:"sex"`          // 性别
	Birthday             int64           `json:"birthday"`     // 生日
	Age                  int32           `json:"age"`          // 年龄
	Nickname             string          `json:"nickname"`     // 微信昵称
	HeadUrl              string          `json:"headUrl"`      // 头像地址
	WxOpenid             string          `json:"wxOpenid"`     // 微信openid
	Address              string          `json:"address"`      // 地址
	ReminderSwitch       int8            `json:"reminderSwitch"`
	VisitCycleDays       int32           `json:"visitCycleDays"`
	NextVisitTime        int64           `json:"nextVisitTime"`
	CustomerSource       string          `json:"customerSource"  msg:"客户来源"` // customerSource客户来源，自来客人 朋友介绍 抖音 快手 微信朋友圈
	AccountSource        string          `json:"accountSource"  msg:"账号来源"`  // accountSource账号来源小程序 系统添加 第三方添加
	Remark               string          `json:"remark"  msg:"备注"`           // remark备注信息（最长255字符）
	VipName              string          `json:"vipName"`                    // 会员名称
	Tags                 []string        `json:"tags"`
	Assets               Assets          `json:"assets"`
	CustomerCode         string          `json:"customerCode" msg:"客户编码"`
	OccupationCode       string          `json:"occupationCode"  msg:"职业编码"`
	OccupationName       string          `json:"occupationName"  msg:"职业名称"`
	WorkEnvCode          string          `json:"workEnvCode"  msg:"工作环境编码"`
	WorkEnvName          string          `json:"workEnvName"  msg:"工作环境名称"`
	EyeUsageDistanceCode string          `json:"eyeUsageDistanceCode"  msg:"用眼距离编码"`
	EyeUsageDistanceName string          `json:"eyeUsageDistanceName"  msg:"用眼距离名称"`
	SelfRelativeId       uint64          `json:"selfRelativeId"  msg:"客户本人亲属id"` // 客户本人亲属id
	Customers            []CustomerCases `json:"customers"`                      // 客户亲属列表
	TrainingCount        int32           `json:"trainingCount"`                  // 培训次数
}

type Assets struct {
	NowIntegral         int64 `json:"nowIntegral"`         // 当前积分
	AccumulateIntegral  int64 `json:"accumulateIntegral"`  // 累计积分
	ConsumptionIntegral int64 `json:"consumptionIntegral"` // 消费积分
	NowAmount           int64 `json:"nowAmount"`           // 当前余额
	AccumulateAmount    int64 `json:"accumulateAmount"`    // 累计余额
}
type CustomerCases struct {
	CustomerId           uint64 `json:"customerId"`       // 客户Id
	RelationId           uint64 `json:"relationId"`       // 亲属Id
	Name                 string `json:"name"`             // 名字
	Sex                  int32  `json:"sex"`              // 性别(1男2女)
	Age                  int32  `json:"age"`              // 年龄
	BaseRelationName     string `json:"baseRelationName"` //亲属关系名称
	BaseRelationId       int32  `json:"baseRelationId"`   // 亲属关系Id
	CaseNum              int32  `json:"caseNum"`          // 病例数量
	HeaderUrl            string `json:"headerUrl"`        // 头像
	Address              string `json:"address" `
	Email                string `json:"email" `
	Phone                string `json:"phone" `
	OccupationCode       string `json:"occupationCode"  msg:"职业编码"`
	OccupationName       string `json:"occupationName"  msg:"职业名称"`
	WorkEnvCode          string `json:"workEnvCode"  msg:"工作环境编码"`
	WorkEnvName          string `json:"workEnvName"  msg:"工作环境名称"`
	EyeUsageDistanceCode string `json:"eyeUsageDistanceCode"  msg:"用眼距离编码"`
	EyeUsageDistanceName string `json:"eyeUsageDistanceName"  msg:"用眼距离名称"`
	MedicalCardNumber    string `json:"medicalCardNumber" msg:"医疗卡号"` // 医疗卡号
}
type GetCustomerInfoByIdRespForApi struct {
	Customer CustomerForApi `json:"customer"` // 顾客信息
}

type GetCustomerInfoByIdResp struct {
	Resp
	Data GetCustomerInfoByIdRespForApi `json:"data"` // 顾客信息
}

type CustomerForApi struct {
	Id                   uint64   `json:"id"`           // 主键ID
	CreatedTime          int64    `json:"createdTime"`  // 创建时间，这是给前端看的，所以应该由时间戳转成对应的日期字符串
	UpdatedTime          int64    `json:"updatedTime"`  // 创建时间，这是给前端看的，所以应该由时间戳转成对应的日期字符串
	CustomerName         string   `json:"customerName"` // 客户名称
	CustomerTel          string   `json:"customerTel"`  // 客户手机号
	Sex                  int32    `json:"sex"`          // 性别
	Birthday             int64    `json:"birthday"`     // 生日
	Age                  int32    `json:"age"`          // 年龄
	Nickname             string   `json:"nickname"`     // 微信昵称
	HeadUrl              string   `json:"headUrl"`      // 头像地址
	WxOpenid             string   `json:"wxOpenid"`     // 微信openid
	Address              string   `json:"address"`      // 地址
	ReminderSwitch       int8     `json:"reminderSwitch"`
	VisitCycleDays       int32    `json:"visitCycleDays"`
	NextVisitTime        int64    `json:"nextVisitTime"`
	CustomerSource       string   `json:"customerSource"  msg:"客户来源"` // customerSource客户来源，自来客人 朋友介绍 抖音 快手 微信朋友圈
	AccountSource        string   `json:"accountSource"  msg:"账号来源"`  // accountSource账号来源小程序 系统添加 第三方添加
	Remark               string   `json:"remark"  msg:"备注"`           // remark备注信息（最长255字符）
	VipName              string   `json:"vipName"`                    // 会员名称
	Tags                 []string `json:"tags"`
	Assets               Assets   `json:"assets"`
	CustomerCode         string   `json:"customerCode" msg:"客户编码"`
	OccupationCode       string   `json:"occupationCode"  msg:"职业编码"`
	OccupationName       string   `json:"occupationName"  msg:"职业名称"`
	WorkEnvCode          string   `json:"workEnvCode"  msg:"工作环境编码"`
	WorkEnvName          string   `json:"workEnvName"  msg:"工作环境名称"`
	EyeUsageDistanceCode string   `json:"eyeUsageDistanceCode"  msg:"用眼距离编码"`
	EyeUsageDistanceName string   `json:"eyeUsageDistanceName"  msg:"用眼距离名称"`
	SelfRelativeId       uint64   `json:"selfRelativeId"  msg:"客户本人亲属id"` // 客户本人亲属id
	SelfRelativeName     string   `json:"selfRelativeName"  msg:"客户本人亲属名称"`
	Phone                string   `json:"phone"  msg:"亲属手机号"`
	BaseRelativeId       int32    `json:"baseRelativeId"  msg:"亲属关系id"`
	BaseRelativeName     string   `json:"baseRelativeName"  msg:"亲属关系名称"`
	MedicalCardNumber    string   `json:"medicalCardNumber"  msg:"医保卡号"`
}

type GetRelativesByQueryReq struct {
	CustomerId     uint64 `form:"customerId"`                                       // 客户ID: 可选
	CustomerName   string `form:"customerName"`                                     // 客户姓名: 可选
	CustomerTel    string `form:"customerTel"`                                      // 客户手机号: 可选
	Phone          string `form:"phone"`                                            // 手机号: 可选
	BaseRelationId int32  `form:"baseRelationId"`                                   // 关系(1父母2子女3兄弟姐妹): 可选
	Sex            int32  `form:"sex"`                                              // 性别(1男2女): 可选
	StartDate      int64  `form:"startDate"`                                        // 开始日期: 可选
	EndDate        int64  `form:"endDate"`                                          // 结束日期: 可选
	Name           string `form:"name"`                                             // 名字: 可选
	Page           int64  `form:"page" validate:"required,gt=0"`                    // 页码: 必填，必须大于0
	PageSize       int64  `form:"pageSize" validate:"required,gt=0"`                // 每页数量: 必填，必须大于0
	OrganId        uint64 `json:"organId" form:"organId" validate:"omitempty,gt=0"` //组织机构ID
}

type CustomerRelativesForListResp struct {
	Resp
	Data CustomerRelativesForList `json:"data"` // 亲属信息列表
}

type CustomerRelativesForList struct {
	List  []CustomerRelativesForListRespForApi `json:"list"`  // 亲属信息列表
	Total int64                                `json:"total"` // 亲属总数
}
type CustomerRelativesForListRespForApi struct {
	Id               uint64 `json:"id"`                                                                 // 亲属ID
	Name             string `json:"name"`                                                               // 名字
	Sex              int32  `json:"sex"`                                                                // 性别(1男2女)
	BaseRelationId   int32  `json:"baseRelationId"`                                                     // 关系(从关系服务查)
	CustomerId       uint64 `json:"customerId"`                                                         // 客户ID
	CustomerName     string `json:"customerName"`                                                       // 客户姓名
	CustomerTel      string `json:"customerTel"`                                                        // 客户手机号
	OrganId          uint64 `json:"organId,optional" form:"organId,optional" validate:"omitempty,gt=0"` //组织机构ID
	Birthday         int64  `json:"birthday"`                                                           // 生日
	Age              int32  `json:"age"`                                                                // 年龄
	BaseRelationName string `json:"baseRelationName"`                                                   //亲属关系名称
	AgeValid         bool   `json:"ageValid"`                                                           // 年龄有效标志
	Phone            string `json:"phone" validate:"omitempty"`
	OccupationCode   string `json:"occupationCode" validate:"omitempty" msg:"职业编码"`
	OccupationName   string `json:"occupationName" validate:"omitempty" msg:"职业名称"`
	// 工作环境
	WorkEnvCode string `json:"workEnvCode" validate:"omitempty" msg:"工作环境编码"`
	WorkEnvName string `json:"workEnvName" validate:"omitempty" msg:"工作环境名称"`
	// 用眼距离
	EyeUsageDistanceCode string `json:"eyeUsageDistanceCode" validate:"omitempty" msg:"用眼距离编码"`
	EyeUsageDistanceName string `json:"eyeUsageDistanceName" validate:"omitempty" msg:"用眼距离名称"`
	MedicalCardNumber    string `json:"medicalCardNumber" validate:"omitempty" msg:"医疗卡号"` // 医疗卡号
}
type CheckCardList struct {
	List  []CheckCard `json:"list"`  // 亲属信息列表
	Total int64       `json:"total"` // 亲属总数
}
type CheckCard struct {
	Id             uint64 `json:"id"`                                               // 亲属ID
	Name           string `json:"name"`                                             // 名字
	Sex            int32  `json:"sex"`                                              // 性别(1男2女)
	BaseRelationId int32  `json:"baseRelationId"`                                   // 关系(1父母2子女3兄弟姐妹)
	CustomerId     uint64 `json:"customerId"`                                       // 客户ID
	OrganId        uint64 `json:"organId" form:"organId" validate:"omitempty,gt=0"` //组织机构ID
	Birthday       int64  `json:"birthday"`                                         // 生日
	Age            int32  `json:"age"`                                              // 年龄
	AgeValid       bool   `json:"ageValid"`                                         // 年龄有效标志
	HeadUrl        string `json:"headUrl" `
	Address        string `json:"address" `
	Email          string `json:"email" `
	Phone          string `json:"phone" `
	OccupationCode string `json:"occupationCode"  msg:"职业编码"`
	OccupationName string `json:"occupationName"  msg:"职业名称"`
	// 工作环境
	WorkEnvCode string `json:"workEnvCode"  msg:"工作环境编码"`
	WorkEnvName string `json:"workEnvName"  msg:"工作环境名称"`
	// 用眼距离
	EyeUsageDistanceCode string `json:"eyeUsageDistanceCode"  msg:"用眼距离编码"`
	EyeUsageDistanceName string `json:"eyeUsageDistanceName"  msg:"用眼距离名称"`
	MedicalCardNumber    string `json:"medicalCardNumber"  msg:"医疗卡号"` // 医疗卡号
}

type CreateCustomerForApi struct {
	Id                   uint64   `json:"id"  msg:"主键ID"`                                    // id主键ID
	CustomerName         string   `json:"customerName"  msg:"客户名称"`                          // customerName客户名称
	CustomerTel          string   `json:"customerTel" validate:"required,phone" msg:"客户手机号"` // customerTel客户手机号
	Sex                  int32    `json:"sex" validate:"required,oneof=1 2" msg:"性别"`        // sex性别，值只能是 1 或 2
	Birthday             int64    `json:"birthday"  msg:"生日"`                                // birthday可选生日（传秒级时间戳）
	Nickname             string   `json:"nickname"  msg:"昵称"`                                // nickname昵称（可选）
	HeadUrl              string   `json:"headUrl"  msg:"头像"`                                 // headUrl可选头像地址（可选）
	Address              string   `json:"address"  msg:"地址"`                                 // address可选地址（没有特定的验证规则）
	CustomerSource       string   `json:"customerSource"  msg:"客户来源"`                        // customerSource客户来源，自来客人 朋友介绍 抖音 快手 微信朋友圈
	AccountSource        string   `json:"accountSource"  msg:"账号来源"`                         // accountSource账号来源小程序 系统添加 第三方添加
	Remark               string   `json:"remark"  msg:"备注"`                                  // remark备注信息（最长255字符）
	VipIds               uint64   `json:"vipIds"  msg:"会员ID"`                                // vipIds可选会员ID
	TagIds               []uint64 `json:"tagIds"  msg:"标签ID"`                                // tagIds可选标签ID
	CustomerCode         string   `json:"customerCode"  msg:"客户编码"`
	OccupationCode       string   `json:"occupationCode"  msg:"职业编码"`
	OccupationName       string   `json:"occupationName"  msg:"职业名称"`
	WorkEnvCode          string   `json:"workEnvCode"  msg:"工作环境编码"`
	WorkEnvName          string   `json:"workEnvName"  msg:"工作环境名称"`
	EyeUsageDistanceCode string   `json:"eyeUsageDistanceCode"  msg:"用眼距离编码"`
	EyeUsageDistanceName string   `json:"eyeUsageDistanceName"  msg:"用眼距离名称"`
}

type CreateCustomerReqForApi struct {
	Customer CreateCustomerForApi `json:"customer"` // 顾客信息
}

type CreateCustomerRespForApi struct {
	Customer CustomerForApi `json:"customer"` // 顾客信息
}
type CreateCustomerResp struct {
	Resp
	Data CreateCustomerRespForApi `json:"data"` // 顾客信息
}

type BaseOccupationResp struct {
	Resp
	Data BaseOccupationList `json:"data"` // 职业列表
}
type BaseOccupationList struct {
	List []BaseOccupation `json:"list"` // 职业列表
}
type BaseOccupation struct {
	Id   uint64 `json:"id"`   // ID
	Code string `json:"code"` // 职业编码
	Name string `json:"name"` // 职业名称
}
type BaseWorkEnvResp struct {
	Resp
	Data BaseWorkEnvList `json:"data"` // 工作环境列表
}
type BaseWorkEnvList struct {
	List []BaseWorkEnvFor `json:"list"` // 工作环境列表
}
type BaseEyeUsageDistanceResp struct {
	Resp
	Data BaseEyeUsageDistanceList `json:"data"` // 用眼距离列表
}
type BaseEyeUsageDistanceList struct {
	List []BaseEyeUsageDistance `json:"list"` // 用眼距离列表
}
type BaseEyeUsageDistance struct {
	Id   uint64 `json:"id"`   // ID
	Code string `json:"code"` // 用眼距离编码
	Name string `json:"name"` // 用眼距离名称
}
type BaseWorkEnvFor struct {
	Id   uint64 `json:"id"`   // ID
	Code string `json:"code"` // 工作环境编码
	Name string `json:"name"` // 工作环境名称
}

type GetCustomerInfoByIdReqForApi struct {
	Id      uint64 `form:"id" validate:"required,gt=0"`                                        // 客户ID
	OrganId uint64 `json:"organId,optional" form:"organId,optional" validate:"omitempty,gt=0"` //组织机构ID
}

type UpdateCustomerForApi struct {
	Id             uint64 `json:"id"`                                             // 主键ID
	CustomerName   string `json:"customerName,optional" validate:"max=20,min=2"`  // 客户名称: 可选，长度限制为2到20个字符
	Sex            int32  `json:"sex,optional" validate:"oneof=1 2"`              // 性别: 可选，值只能是1或2
	Birthday       int64  `json:"birthday,optional"`                              // 生日: 可选，必须是数字（时间戳）
	Nickname       string `json:"nickname,optional"`                              // 微信昵称: 可选，无特定验证
	HeadUrl        string `json:"headUrl,optional"`                               // 头像地址: 可选，必须是有效的URL
	Address        string `json:"address,optional"`                               // 地址: 可选，无特定验证
	CustomerSource string `json:"customerSource" validate:"omitempty" msg:"客户来源"` // customerSource客户来源，自来客人 朋友介绍 抖音 快手 微信朋友圈
	AccountSource  string `json:"accountSource" validate:"omitempty" msg:"账号来源"`  // accountSource账号来源小程序 系统添加 第三方添加
	Remark         string `json:"remark" validate:"omitempty" msg:"备注"`           // remark备注信息（最长255字符）
	CustomerCode   string `json:"customerCode"  msg:"客户编码"`
	OccupationCode string `json:"occupationCode" validate:"omitempty" msg:"职业编码"`
	OccupationName string `json:"occupationName" validate:"omitempty" msg:"职业名称"`
	// 工作环境
	WorkEnvCode string `json:"workEnvCode" validate:"omitempty" msg:"工作环境编码"`
	WorkEnvName string `json:"workEnvName" validate:"omitempty" msg:"工作环境名称"`
	// 用眼距离
	EyeUsageDistanceCode string `json:"eyeUsageDistanceCode" validate:"omitempty" msg:"用眼距离编码"`
	EyeUsageDistanceName string `json:"eyeUsageDistanceName" validate:"omitempty" msg:"用眼距离名称"`
}

type UpdateCustomerByIdRespForApi struct {
	Customer CustomerForApi `json:"customer"` // 顾客信息
}
type OrganListReq struct {
	OrganId   uint64 `json:"organId,optional" validate:"omitempty"  msg:"组织机构id"` // 组织机构id
	StartDate int64  `json:"startDate,optional" form:"startDate,optional" validate:"omitempty"  msg:"开始日期"`
	EndDate   int64  `json:"endDate,optional" form:"endDate,optional" validate:"omitempty"  msg:"结束日期"`
}

type GetOrganizeEmployeeListReqForApi struct {
	Page         int64  `form:"page" validate:"gte=1"`                                              // 页码: 必须大于或等于 1
	PageSize     int64  `form:"pageSize" validate:"gte=1"`                                          // 每页数量: 必须大于或等于 1
	Name         string `form:"name,optional" validate:"omitempty"`                                 // 员工姓名: 可选
	PositionId   uint64 `msg:"职位ID" form:"positionId" validate:"omitempty"`                         // 职位ID: 可选，必须大于0
	DepartmentId uint64 `msg:"部门ID" form:"departmentId" validate:"omitempty"`                       // 部门ID: 可选，必须大于0
	PhoneNumber  string `form:"phoneNumber,optional" validate:"omitempty"`                          // 电话: 可选
	Status       int32  `form:"status,optional" validate:"omitempty,oneof=1 2"`                     // 状态: 可选，值只能是1在职, 2离职
	OrganId      uint64 `json:"organId,optional" form:"organId,optional" validate:"omitempty,gt=0"` //组织机构ID
}

type OrganizeEmployeeForListRespForApi struct {
	Id                             uint64                           `json:"id"`                                                                 // 员工ID
	IdCard                         string                           `json:"idCard"`                                                             // 身份证号
	OrganId                        uint64                           `json:"organId,optional" form:"organId,optional" validate:"omitempty,gt=0"` //组织机构ID
	Name                           string                           `json:"name"`                                                               // 员工姓名
	HeadUrl                        string                           `json:"headUrl"`                                                            // 头像地址
	Sex                            int32                            `json:"sex"`                                                                // 性别
	PhoneNumber                    string                           `json:"phoneNumber"`                                                        // 电话
	UserName                       string                           `msg:"工号" json:"userName" validate:"omitempty"`                             // 工号: 可选，长度限制为2到50个字符
	UserId                         uint64                           `json:"userId"`                                                             // 用户ID
	Status                         int32                            `json:"status"`                                                             // 状态
	IsInit                         int32                            `json:"isInit"`                                                             // 是否初始化账号（1是2否）
	EmployeeDepartmentPositionInfo []EmployeeDepartmentPositionInfo `json:"departmentPositionInfo"`
}
type OrganizeEmployeeForListRespForApiList struct {
	List  []OrganizeEmployeeForListRespForApi `json:"list"`  // 员工列表
	Total int64                               `json:"total"` // 总数
}
type OrganizeEmployeeForListRespForApiListResp struct {
	Resp
	Data OrganizeEmployeeForListRespForApiList `json:"data"` // 员工列表
}
type EmployeeDepartmentPositionInfo struct {
	DepartmentId   uint64               `json:"departmentId"`   // 部门ID
	DepartmentName string               `json:"departmentName"` // 部门名称
	PositionId     uint64               `json:"positionId"`     // 职位ID
	PositionName   string               `json:"positionName"`   // 职位名称
	DepartmentPath []DepartmentPathNode `json:"departmentPath"` // 部门层级路径，从根节点到当前部门
}
type DepartmentPathNode struct {
	Id   uint64 `json:"id"`   // 上级部门ID
	Name string `json:"name"` // 上级部门名称
}

type UserInfo struct {
	Id               int64  `json:"id"`               // 用户ID
	CreateTime       int64  `json:"createdTime"`      // 创建时间
	UpdateTime       int64  `json:"updatedTime"`      // 更新时间
	UniqueNumber     string `json:"uniqueNumber"`     // 唯一编号
	Username         string `json:"username"`         // 用户名
	OrganizationId   int64  `json:"organizationId"`   // 组织机构ID
	WeChatUnionid    string `json:"weChatUnionid"`    // 微信unionid
	OrganizationCode string `json:"organizationCode"` // 组织机构编码
	NickName         string `json:"nickName"`         // 昵称
	HeaderImg        string `json:"headerImg"`        // 头像
	Phone            string `json:"phone"`            // 手机号
	Status           bool   `json:"status"`           // 状态
	Seckey           string `json:"seckey"`           // 密钥
	Email            string `json:"email"`            // 邮箱
}

type UserInfoResp struct {
	Resp
	Data UserInfo `json:"data"`
}

type BatchCreateCustomerRelativeReq struct {
	Relatives []CreateCustomerRelativeReq `json:"relatives" validate:"required,dive"`                                 // 亲属信息列表: 必填，且每个元素必须符合 CreateCustomerRelativeReq 的规则
	OrganId   uint64                      `json:"organId,optional" form:"organId,optional" validate:"omitempty,gt=0"` //组织机构ID
}

type CreateCustomerRelativeReq struct {
	Name                 string `json:"name" validate:"required,max=50,min=2"`   // 名字: 必填，长度在2到50个字符之间
	BaseRelationID       int32  `json:"baseRelationId" validate:"required,gt=0"` // 关系: 必填，必须大于0
	CustomerId           uint64 `json:"customerId" validate:"required,gt=0"`     // 客户ID: 必填，必须大于0
	Birthday             int64  `json:"birthday" validate:"omitempty"`           // 生日: 可选，必须为秒级时间戳
	HeadUrl              string `json:"headUrl" validate:"omitempty"`
	Address              string `json:"address" validate:"omitempty"`
	Email                string `json:"email" validate:"omitempty"`
	Phone                string `json:"phone" validate:"omitempty"`
	OccupationCode       string `json:"occupationCode" validate:"omitempty" msg:"职业编码"`
	OccupationName       string `json:"occupationName" validate:"omitempty" msg:"职业名称"`
	WorkEnvCode          string `json:"workEnvCode" validate:"omitempty" msg:"工作环境编码"`
	WorkEnvName          string `json:"workEnvName" validate:"omitempty" msg:"工作环境名称"`
	EyeUsageDistanceCode string `json:"eyeUsageDistanceCode" validate:"omitempty" msg:"用眼距离编码"`
	EyeUsageDistanceName string `json:"eyeUsageDistanceName" validate:"omitempty" msg:"用眼距离名称"`
	MedicalCardNumber    string `json:"medicalCardNumber" validate:"omitempty" msg:"医疗卡号"`
}

type RemoveCustomerRelativeByIDReq struct {
	Id uint64 `json:"id" validate:"required,gt=0"` // 亲属ID: 必填，必须大于0
}

type RelativeBaseForListForRespForApi struct {
	Id   uint64 `json:"id"`   //ID
	Code string `json:"code"` //亲属编码
	Name string `json:"name"` //亲属名称
	Sex  int32  `json:"sex"`  // 性别，值是 1（男）或 2（女）
}

type RelativeBaseForListForRespForApiList struct {
	List []RelativeBaseForListForRespForApi `json:"list"` // 亲属列表
}

type RelativeBaseForListForRespForApiListResp struct {
	Resp
	Data RelativeBaseForListForRespForApiList `json:"data"` // 亲属列表
}

type DeleteCustomerByIdReqForApi struct {
	CustomerId uint64 `json:"customerId" validate:"required,gt=0"`                                // 客户Id: 必填，必须大于0
	OrganId    uint64 `json:"organId,optional" form:"organId,optional" validate:"omitempty,gt=0"` //组织机构ID
}

type GetProviderToOpticianLevelListReqForApi struct {
	OpticianId uint64 `json:"opticianId"` // 眼镜店id
	Page       int64  `json:"page"`       // 页码
	Size       int64  `json:"size"`       // 每页数量
}

type ProviderToOpticianLevelInfo struct {
	Id        uint64 `json:"id,optional"`     // 供应商等级id
	Level     int64  `json:"level"`           // 供应商等级
	LevelName string `json:"levelName"`       // 供应商等级名称
	Score     int64  `json:"score,optional"`  // 供应商评分
	Remark    string `json:"remark,optional"` // 供应商评价
}

type GetProviderToOpticianLevelListRespForApi struct {
	Total                       int64                         `json:"total"` // 总数量
	ProviderToOpticianLevelList []ProviderToOpticianLevelInfo `json:"providerToOpticianLevelList"`
}

type GetProviderToOpticianLevelListRespForApiResp struct {
	Resp
	Data GetProviderToOpticianLevelListRespForApi `json:"data"` // 供应商评级列表
}

type CreateOrganizeEmployeeReq struct {
	CertificateUrl         string                   `json:"certificateUrl"`
	IdCard                 string                   `json:"idCard" validate:"required,IDCard" msg:"身份证号"`                       // 身份证号: 必填，符合身份证号格式
	Name                   string                   `json:"name" validate:"required,max=50,min=2" msg:"员工姓名"`                   // 员工姓名: 必填，长度限制为2到50个字符
	Sex                    int32                    `json:"sex" validate:"required,oneof=1 2"  msg:"性别"`                        // 性别: 必填，值只能是1或2
	PhoneNumber            string                   `json:"phoneNumber" validate:"required,phone" msg:"电话"`                     // 电话: 必填，符合电话号码格式
	DepartmentPositionList []DepartmentPositionItem `json:"departmentPositionList" validate:"omitempty" msg:"部门职位组合列表"`         // 部门职位组合列表
	HeadUrl                string                   `msg:"头像地址" json:"headUrl"  validate:"omitempty"`                           // 头像地址: 可选，必须是有效的URL
	UserName               string                   `msg:"工号" json:"userName" validate:"omitempty"`                             // 工号: 可选，长度限制为2到50个字符
	OrganId                uint64                   `json:"organId,optional" form:"organId,optional" validate:"omitempty,gt=0"` //组织机构ID
	DomValue               string                   `json:"domValue,optional"`                                                  // 组织机构编码
	OrganClassificationId  uint64                   `json:"organClassificationId,optional"`                                     // 组织机构分类ID
}

type DepartmentPositionItem struct {
	DepartmentID   uint64 `json:"departmentId" validate:"omitempty" msg:"部门ID"`   // 部门ID: 必填
	DepartmentName string `json:"departmentName" validate:"omitempty" msg:"部门名称"` // 部门名称: 必填
	PositionID     uint64 `json:"positionId" validate:"omitempty" msg:"职位ID"`     // 职位ID: 必填
	PositionName   string `json:"positionName" validate:"omitempty" msg:"职位名称"`   // 职位名称: 必填
}

type UpdateOrganizeEmployeeReq struct {
	Id                     uint64                   `json:"id" validate:"required,gt=0"`                                        // 员工ID: 必填，必须大于0
	IdCard                 string                   `json:"idCard,optional" validate:"omitempty,IDCard"`                        // 身份证号: 可选，符合身份证号格式
	Name                   string                   `json:"name,optional" validate:"omitempty,max=50,min=2"`                    // 员工姓名: 可选，长度限制为2到50个字符
	Sex                    int32                    `json:"sex,optional" validate:"omitempty,oneof=1 2"`                        // 性别: 可选，值只能是1或2
	HeadUrl                string                   `json:"headUrl,optional" validate:"omitempty"`                              // 头像地址: 可选，必须是有效的URL
	UserName               string                   `msg:"工号" json:"userName" validate:"omitempty"`                             // 工号: 可选，长度限制为2到50个字符
	CertificateUrl         string                   `json:"certificateUrl,optional" validate:"omitempty"`                       // 证件照地址: 可选
	DepartmentPositionList []DepartmentPositionItem `json:"departmentPositionList" validate:"omitempty" msg:"部门职位组合列表"`         // 部门职位组合列表
	OrganId                uint64                   `json:"organId,optional" form:"organId,optional" validate:"omitempty,gt=0"` //组织机构ID
}

type GetOrganizeEmployeeByIdReq struct {
	Id      uint64 `form:"id" validate:"required,gt=0"`                                        // 员工ID: 必填，必须大于0
	OrganId uint64 `json:"organId,optional" form:"organId,optional" validate:"omitempty,gt=0"` //组织机构ID
}

type GetOrganizeEmployeeByIdRespForApi struct {
	Id             uint64 `json:"id"`                                                                 // 员工ID
	IdCard         string `json:"idCard"`                                                             // 身份证号
	OrganId        uint64 `json:"organId,optional" form:"organId,optional" validate:"omitempty,gt=0"` //组织机构ID
	Name           string `json:"name"`                                                               // 员工姓名
	HeadUrl        string `json:"headUrl"`                                                            // 头像地址
	Sex            int32  `json:"sex"`                                                                // 性别
	PhoneNumber    string `json:"phoneNumber"`                                                        // 电话
	Status         int32  `json:"status"`                                                             // 状态
	IsInit         int32  `json:"isInit"`                                                             // 是否初始化账号（1是2否）
	CertificateUrl string `json:"certificateUrl"`
	UserName       string `msg:"工号" json:"userName" validate:"omitempty"` // 工号: 可选，长度限制为2到50个字符
	//DataList                       ListRespWithoutTotal             `json:"dataList"`                               // 员工职位数据
	EmployeeDepartmentPositionInfo []EmployeeDepartmentPositionInfo `json:"employeeDepartmentPositionInfo"` // 部门职位信息
	IsType                         int32                            `json:"isType"`                         //方便前端区分类型用于构造部门树
}
type GetOrganizeEmployeeByIdRespForApiResp struct {
	Resp
	Data GetOrganizeEmployeeByIdRespForApi `json:"data"` // 员工信息
}

type DeleteOrganizeEmployeeByIdReqForApi struct {
	Id uint64 `json:"id" validate:"required,gt=0"` // 员工ID
}

type ChangeEmployeeStatusReqForApi struct {
	Id     uint64 `json:"id" validate:"required"`     // 员工ID
	Status int32  `json:"status" validate:"required"` // 状态（1在职2离职）
}

type GetOrganizeDepartmentTreeReqForApi struct {
	OrganId uint64 `json:"organId,optional" form:"organId,optional" validate:"omitempty,gt=0"` //组织机构ID
}

type DepartmentTreeNode struct {
	Id             uint64                              `json:"id"`
	DepartmentName string                              `json:"departmentName"`
	Remark         string                              `json:"remark"`
	ParentId       uint64                              `json:"parentId"`
	Children       []DepartmentTreeNode                `json:"children,omitempty"` // 子节点
	EmployeeList   []GetOrganizeEmployeeByIdRespForApi `json:"employeeList"`
}

type DepartmentTreeRespForApi struct {
	DepartmentTree []DepartmentTreeNode `json:"departmentTree"`
}

type DepartmentTreeRespForApiResp struct {
	Resp
	Data DepartmentTreeRespForApi `json:"data"` // 组织架构树
}

type GetPositionListForDepartmentReqForApi struct {
	DepartmentId uint64 `msg:"部门ID" form:"departmentId" validate:"required"`
}

type PositionForListResp struct {
	Id           uint64 `json:"id"`
	PositionName string `msg:"职位名称" json:"positionName"`
	Remark       string `msg:"备注" json:"remark"`
}
type PositionForListRespList struct {
	List  []PositionForListResp `json:"list"`
	Total int64                 `json:"total"`
}
type PositionForListRespListResp struct {
	Resp
	Data PositionForListRespList `json:"data"`
}

type GetVisitCycleByCustomerReqForApi struct {
	Id      uint64 `form:"id" validate:"required"`                                             // 客户id
	OrganId uint64 `json:"organId,optional" form:"organId,optional" validate:"omitempty,gt=0"` //组织机构ID
}

type GetVisitCycleByCustomerRespForApi struct {
	VisitCycleDays int32  `json:"visitCycleDays"`                // 客户访问周期
	ReminderSwitch int32  `json:"reminderSwitch"`                // 回访提醒开关
	WhyVisit       string `json:"whyVisit" validate:"omitempty"` //为什么需要回访
}

type GetVisitCycleByCustomerRespForApiResp struct {
	Resp
	Data GetVisitCycleByCustomerRespForApi `json:"data"` // 客户访问周期信息
}

type ControlVisitCycleSwitchReqForApi struct {
	CustomerId     uint64 `json:"customerId" validate:"required"`                                     // 外部编码
	ReminderSwitch int8   `json:"reminderSwitch" validate:"oneof=1 2"`                                // 送检提醒开关(1开启2关闭)
	OrganId        uint64 `json:"organId,optional" form:"organId,optional" validate:"omitempty,gt=0"` //组织机构ID
}

type UpdateVisitCycleCycleReqForApi struct {
	CustomerId     uint64 `json:"customerId" validate:"required"`
	VisitCycleDays int32  `json:"visitCycleDays" validate:"gte=1"`
	WhyVisit       string `json:"whyVisit" validate:"omitempty"`                                      //为什么需要回访
	OrganId        uint64 `json:"organId,optional" form:"organId,optional" validate:"omitempty,gt=0"` //组织机构ID
}

type GetCustomerListReqGetForApi struct {
	Page          int64  `form:"page" validate:"omitempty,gte=1"`                                    // 页码: 必须大于或等于 1
	PageSize      int64  `form:"pageSize" validate:"omitempty,gte=1"`                                // 每页数量: 必须大于或等于 1
	CustomerName  string `form:"customerName" validate:"omitempty"`                                  // 客户名称: 可选
	CustomerTel   string `form:"customerTel" validate:"omitempty"`                                   // 客户手机号: 可选
	Sex           int32  `form:"sex" validate:"omitempty,oneof=1 2"`                                 // 性别: 可选，值只能是 1 或 2
	AgeStart      int32  `form:"ageStart" validate:"omitempty,gte=0"`                                // 年龄开始: 可选，必须大于或等于 0
	AgeEnd        int32  `form:"ageEnd" validate:"omitempty,gte=0"`                                  // 年龄结束: 可选，必须大于或等于 0
	CreateAtStart int64  `form:"createAtStart" validate:"omitempty"`                                 // 创建时间开始时间戳: 可选，必须是数字（时间戳）
	CreateAtEnd   int64  `form:"createAtEnd" validate:"omitempty"`                                   // 创建时间结束时间戳: 可选，必须是数字（时间戳）
	OrganId       uint64 `json:"organId,optional" form:"organId,optional" validate:"omitempty,gt=0"` //组织机构ID
}

type GetCustomerListRespForApi struct {
	Total     int              `json:"total"`     // 总数
	Customers []CustomerForApi `json:"customers"` // 顾客列表
}
type GetCustomerListRespForApiResp struct {
	Resp
	Data GetCustomerListRespForApi `json:"data"` // 顾客列表
}

type OrganIdReq struct {
	OrganId uint64 `json:"organId,optional" validate:"omitempty"  msg:"组织机构id"`
}

type StyleInfoForApi struct {
	ID          uint64 `json:"id,optional" validate:"omitempty"`
	OrganId     uint64 `json:"organId,optional" validate:"omitempty" msg:"组织机构id"`
	HeaderImg   string `json:"headerImg" validate:"omitempty" msg:"报告头部图片地址"`
	FooterImg   string `json:"footerImg" validate:"omitempty" msg:"报告底部图片地址"`
	ReportTitle string `json:"reportTitle,optional" validate:"omitempty" msg:"报告标题"`
	DeviceSn    string `json:"deviceSn,optional" validate:"omitempty" msg:"设备sn"`
	Status      int32  `json:"status,optional" validate:"omitempty" msg:"模板状态"`
	Name        string `json:"name,optional" validate:"omitempty" msg:"联系人姓名"`
	PhoneNumber string `json:"phoneNumber,optional" validate:"omitempty" msg:"联系电话"`
}

type StyleInfoForApiList struct {
	List  []StyleInfoForApi `json:"list"`
	Total int64             `json:"total"`
}

type StyleInfoForApiListResp struct {
	Resp
	Data StyleInfoForApiList `json:"data"` // 报告模板列表
}

type CustomCheckQrCodeSettingParams struct {
	Page       int64 `form:"page"`                //页码
	PageSize   int64 `form:"pageSize"`            //每页数量
	OrganizeId int64 `form:"organizeId,optional"` //分店组织机构id
}
type CustomCheckQrCodeSettingInfo struct {
	Id         int64  `json:"id"`         //设置id
	CheckLogo  string `json:"checkLogo"`  //二维码logo
	CheckTitle string `json:"checkTitle"` //二维码标题
	Remark     string `json:"remark"`     //备注
	IsDefault  int32  `json:"isDefault"`  //是否默认
}

type CustomCheckQrCodeSettingList struct {
	List  []CustomCheckQrCodeSettingInfo `json:"list"`  //列表
	Total int64                          `json:"total"` //总数
}

type CustomCheckQrCodeSettingListResp struct {
	Resp
	Data CustomCheckQrCodeSettingList `json:"data"` // 二维码设置列表
}

type CustomCheckQrCodeSettingData struct {
	Id         int64  `json:"id,optional"`         //设置id
	Remark     string `json:"remark,optional"`     //备注
	CheckLogo  string `json:"checkLogo"`           //二维码logo
	CheckTitle string `json:"checkTitle"`          //二维码标题
	IsDefault  int32  `json:"isDefault"`           //是否默认
	OrganizeId int64  `json:"organizeId,optional"` //分店组织机构id
}

type CustomCheckQrCodeSettingId struct {
	Id         int64 `json:"id"`                  //设置id
	OrganizeId int64 `json:"organizeId,optional"` //分店组织机构id
}

type CustomCheckQrCodeSettingInfoResp struct {
	Resp
	Data CustomCheckQrCodeSettingData `json:"data"` // 二维码设置信息
}

type CustomQueryId struct {
	Id         int64 `form:"id"`                  // 客户Id
	OrganizeId int64 `form:"organizeId,optional"` //组织机构Id
}

type CreatePreferenceReq struct {
	Word     string `msg:"ai建议偏好词" json:"word" validate:"required"`
	OrganId  uint64 `msg:"组织id" json:"organId,optional" validate:"omitempty"`
	TypeName string `msg:"类型名称" json:"typeName" validate:"required"`
}
type OrganQuery struct {
	OrganId   uint64 `msg:"机构ID" json:"organizeId" validate:"required,gt=0"` // 单个机构ID，必须大于0
	StartTime int64  `msg:"开始时间" json:"startTime" validate:"omitempty"`      // 开始时间，可选
	EndTime   int64  `msg:"结束时间" json:"endTime" validate:"omitempty"`        // 结束时间，可选
}

type GetVisitRecordListReqForBranch struct {
	OrganIds     []uint64     `json:"organIds"`
	OrganQueries []OrganQuery `msg:"机构查询" json:"organQueries"`                      // 查询条件数组对象，必填
	CustomerName string       `msg:"客户姓名" json:"customerName" validate:"omitempty"` // CustomerName 客户姓名
	CustomerTel  string       `msg:"客户电话" json:"customerTel" validate:"omitempty"`  // CustomerTel 客户电话
	StartTime    int64        `msg:"开始时间" json:"startTime" validate:"omitempty"`    // StartTime开始时间
	EndTime      int64        `msg:"结束时间" json:"endTime" validate:"omitempty"`      // EndTime结束时间
	Page         int64        `msg:"页码" json:"page" validate:"omitempty,gte=1"`     // page可选,页码: 默认第一页，必须大于或等于 1
	PageSize     int64        `msg:"每页数量" json:"pageSize" validate:"omitempty,gte=1"`
}

type VisitRecordForList struct {
	Id                       uint64 `json:"id"`                       // 回访记录ID
	CustomerName             string `json:"customerName"`             // 客户姓名
	CustomerTel              string `json:"customerTel"`              // 客户电话
	EstimatedVisitTimeFormat string `json:"estimatedVisitTimeFormat"` // 预计回访时间（格式化）
	ActualVisitTimeFormat    string `json:"actualVisitTimeFormat"`    // 实际回访时间（格式化）
	IsVisited                int32  `json:"isVisited"`                // 是否已回访1：已回访：未回访
	VisitMethod              int32  `json:"visitMethod"`              //回访方式1到店2电话3短信4微信
	VisitResult              string `json:"visitResult"`              // 回访结果
}

type VisitRecordForListResp struct {
	List  []VisitRecordForList `json:"list"`  // 回访记录列表
	Total int64                `json:"total"` // 总数
}
type VisitRecordForListRespResp struct {
	Resp
	Data VisitRecordForListResp `json:"data"` // 回访记录列表
}

type CreateVisitRecordReqForApi struct {
	CustomerID         uint64 `json:"customerId"`                                                         // 客户ID
	EstimatedVisitTime int64  `json:"estimatedVisitTime"`                                                 // 预计回访时间
	OrganId            uint64 `json:"organId,optional" form:"organId,optional" validate:"omitempty,gt=0"` //组织机构ID
}

type GetVisitRecordListReqForApi struct {
}

type DeleteVisitRecordReq struct {
	Id uint64 `json:"id" validate:"required" msg:"回访记录ID"` // 回访记录ID
}

type ConfirmVisitRecordReqForApi struct {
	Id          uint64 `json:"id" validate:"required" msg:"回访记录ID"`        // 回访记录ID
	VisitMethod int32  `json:"visitMethod" validate:"required" msg:"回访方式"` // 回访方式1到店2电话3短信4微信
	VisitResult string `json:"visitResult" validate:"required" msg:"回访结果"` // 回访结果
}

type TodoForVisitReq struct {
	CustomerId uint64 `json:"customerId" validate:"required"`
	VisitId    uint64 `json:"visitId" validate:"required"`
}

type VisitRecordForListRes struct {
	Data VisitRecordForList `json:"data"` // 回访记录列表
	Resp
}
type PreferenceReq struct {
	Id       uint64 `msg:"id" json:"id" validate:"required"`
	Word     string `msg:"ai建议偏好词" json:"word" validate:"required"`
	OrganId  uint64 `msg:"组织id" json:"organId,optional" validate:"omitempty"`
	TypeName string `msg:"类型名称" json:"typeName" validate:"required"`
}

type PreferenceResp struct {
	Data PreferenceReq `json:"data"` // 偏好词
	Resp
}
type GetAfterSaleDetailReq struct {
	OrderCode string `json:"orderCode" validate:"required"` // 订单号
}

type GetAfterSaleDetail struct {
	Desc   string `json:"desc"`   // 售后描述
	Status int32  `json:"status"` // 售后状态
	Time   string `json:"time"`   // 售后时间
}
type GetAfterSaleDetailList struct {
	Process []GetAfterSaleDetail `json:"process"` // 售后列表
}

type GetAfterSaleDetailListResp struct {
	Resp
	Data GetAfterSaleDetailList `json:"data"` // 售后列表
}

type ApplyAfterSaleReq struct {
	CategoryName  string   `json:"categoryName" validate:"required"`  // 售后类型名称
	Contact       string   `json:"contact" validate:"required"`       // 联系人
	Content       string   `json:"content" validate:"required"`       // 售后内容
	Images        []string `json:"images" validate:"required"`        // 图片
	OutCode       string   `json:"outCode" validate:"required"`       // 外部编码
	Phone         string   `json:"phone" validate:"required"`         // 联系电话
	ProblemRecord string   `json:"problemRecord" validate:"required"` // 问题记录
	Title         string   `json:"title" validate:"required"`         // 售后标题
	TypeName      string   `json:"typeName" validate:"required"`      // 售后类型名称
}

type GetAfterSaleListReq struct {
	Page     int64 `json:"page" validate:"required,gte=1"`
	PageSize int64 `json:"pageSize" validate:"required,gte=1"`
	TypeId   int64 `json:"typeId" validate:"required"`
}

type AfterSaleInfo struct {
	Title            string `json:"title"`            // 售后标题
	Img              string `json:"img"`              // 图片
	Content          string `json:"content"`          // 售后内容
	Status           int32  `json:"status"`           // 售后状态
	OutCode          string `json:"outCode"`          // 外部编码
	OrderCode        string `json:"orderCode"`        // 订单号
	CreatedTime      string `json:"createdTime"`      // 创建时间
	AfterSaleType    int32  `json:"afterSaleType"`    // 售后类型
	CategoryName     string `json:"categoryName"`     // 售后类型名称
	TypeName         string `json:"typeName"`         // 售后类型名称
	CreatedName      string `json:"createdName"`      // 创建人姓名
	Contact          string `json:"contact"`          // 联系人
	Phone            string `json:"phone"`            // 联系电话
	ProcessingPlan   string `json:"processingPlan"`   // 处理方案
	ProcessingResult string `json:"processingResult"` // 处理结果
	Priority         int32  `json:"priority"`         // 优先级
}

type GetAfterSaleList struct {
	List  []AfterSaleInfo `json:"list"`  // 售后列表
	Total int64           `json:"total"` // 总数
}

type GetAfterSaleListResp struct {
	Resp
	Data GetAfterSaleList `json:"data"` // 售后列表
}

type GetStatementsListReqForBranchReq struct {
	OrganIds     []uint64     `json:"organIds"`
	OrganQueries []OrganQuery `msg:"机构查询" json:"organQueries"` // 查询条件数组对象，必填
	OrderCode    string       `json:"orderCode"`               // 订单号
	Page         int64        `json:"page"`                    // 页码
	Size         int64        `json:"size"`                    // 每页数量
	BType        int32        `json:"bType"`                   // 大类型(1-收入 2-支出)
	OrderType    int32        `json:"orderType"`               // 订单类型(1-眼镜店采购单, 2-眼镜店销售单)
	StartDate    int64        `json:"startDate"`               // 开始时间
	EndDate      int64        `json:"endDate"`                 // 结束时间
	CreateName   string       `json:"createName"`              // 创建人姓名
}

type BranchGetStatementsListRespForApi struct {
	Total     int64 `json:"total"`     // 总数
	InAmount  int64 `json:"inAmount"`  // 收入总金额
	OutAmount int64 `json:"outAmount"` // 支出总金额
}

type StatementsForApi struct {
	Id               uint64 `json:"id,optional"`                                                        // 账单ID
	OrderId          uint64 `json:"orderId,optional"`                                                   // 订单ID
	Amount           int64  `json:"amount"`                                                             // 金额
	BType            int32  `json:"bType"`                                                              // 大类型(1-收入 2-支出)
	OrderType        int32  `json:"orderType"`                                                          // 订单类型(1-眼镜店采购单, 2-眼镜店销售单, 3-其他)
	Description      string `json:"description"`                                                        // 详细描述
	OrganId          uint64 `json:"organId,optional" form:"organId,optional" validate:"omitempty,gt=0"` //组织机构ID
	CreateUserId     uint64 `json:"createUserId,optional"`                                              // 创建人ID
	CreateName       string `json:"createName,optional"`                                                // 创建人姓名
	CreatedAt        int64  `json:"createdAt,optional"`                                                 // 创建时间
	OrderCode        string `json:"orderCode,optional"`                                                 // 订单号
	BusinessUserId   uint64 `json:"businessUserId,optional"`                                            // 业务员ID
	BusinessUserName string `json:"businessUserName,optional"`                                          // 业务员名称
	BusinessTime     int64  `json:"businessTime,optional"`                                              // 业务时间
	ActualAmount     int64  `json:"actualAmount,optional"`                                              // 实收金额
}

type GetStatementsListRespForApi struct {
	Total           int64              `json:"total"`           // 总数
	List            []StatementsForApi `json:"list"`            // 流水账列表
	InAmount        int64              `json:"inAmount"`        // 收入总金额
	OutAmount       int64              `json:"outAmount"`       // 支出总金额
	InActualAmount  int64              `json:"inActualAmount"`  // 收入实收总金额
	OutActualAmount int64              `json:"outActualAmount"` // 支出实收总金额
}

type GetStatementsListReqForApiResp struct {
	Resp
	Data GetStatementsListRespForApi `json:"data"` // 流水账列表
}

type CreateStatementsReqForApi struct {
	Statement StatementsForApi `json:"statement"`                                                          // 流水账
	OrganId   uint64           `json:"organId,optional" form:"organId,optional" validate:"omitempty,gt=0"` //组织机构ID
}

type DeleteStatementsReqForApi struct {
	Ids []uint64 `json:"ids"` // 流水账ID列表
}

type CreateStatementsRespForApi struct {
	Statement StatementsForApi `json:"statement"` // 流水账
}
type CreateStatementsRespForApiResp struct {
	Resp
	Data CreateStatementsRespForApi `json:"data"` // 流水账
}

type GetStatementsDetailReqForApiReq struct {
	Id uint64 `json:"id"` // 流水账ID
}

type GetAfterSaleDetailInfo struct {
	Title                string   `json:"title"`                // 售后标题
	OutCode              string   `json:"outCode"`              // 外部编码
	Content              string   `json:"content"`              // 售后内容
	Images               []string `json:"images"`               // 图片
	CreatedTime          string   `json:"createdTime"`          // 创建时间
	Status               int32    `json:"status"`               // 售后状态
	ProblemRecord        string   `json:"problemRecord"`        // 问题记录
	OrderCode            string   `json:"orderCode"`            // 订单号
	CreaetedOrganName    string   `json:"creaetedOrganName"`    // 创建人机构名称
	AfterSaleTypeId      int32    `json:"afterSaleTypeId"`      // 售后类型ID
	AfterSaleTypeName    string   `json:"afterSaleTypeName"`    // 售后类型名称
	CategoryName         string   `json:"categoryName"`         // 售后类型名称
	TypeName             string   `json:"typeName"`             // 售后类型名称
	Contact              string   `json:"contact"`              // 联系人
	Phone                string   `json:"phone"`                // 联系电话
	ProcessingPlan       string   `json:"processingPlan"`       // 处理方案
	ProcessingResult     string   `json:"processingResult"`     // 处理结果
	ProcessingAttachment string   `json:"processingAttachment"` // 处理附件
	//ProcessFlow          []ProcessFlow `json:"processFlow"`          // 处理流程
}

type GetAfterSaleDetailInfoResp struct {
	Resp
	Data GetAfterSaleDetailInfo `json:"data"` // 售后详情
}
